package com.changyinBus.system.mapper;

import com.changyinBus.common.core.domain.entity.SysProdCate;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 产品分类 数据层
 */
public interface SysProdCateMapper {
    /**
     * 根据条件分页查询产品分类
     *
     * @param cate 产品分类信息
     * @return 产品分类集合信息
     */
    List<SysProdCate> selectProdCateList(SysProdCate cate);

    /**
     * 根据产品分类ID查询信息
     *
     * @param cateId 产品分类ID
     * @return 产品分类信息
     */
    SysProdCate selectProdCateById(Long cateId);

    SysProdCate selectSingleCate(SysProdCate cate);

    /**
     * 根据ID查询所有子产品分类
     *
     * @param cateId 产品分类ID
     * @return 产品分类列表
     */
    List<SysProdCate> selectChildrenProdCateById(Long cateId);

    /**
     * 是否存在子节点
     *
     * @param cateId 产品分类ID
     * @return 结果
     */
    int hasChildByProdCateId(Long cateId);

    /**
     * 新增产品分类信息
     *
     * @param cate 产品分类信息
     * @return 结果
     */
    int insertProdCate(SysProdCate cate);

    /**
     * 修改产品分类信息
     *
     * @param cate 产品分类信息
     * @return 结果
     */
    int updateProdCate(SysProdCate cate);

    /**
     * 修改子元素关系
     *
     * @param cates 子元素
     * @return 结果
     */
    int updateProdCateChildren(@Param("cates") List<SysProdCate> cates);

    /**
     * 删除产品分类信息
     *
     * @param cateId 产品分类ID
     * @return 结果
     */
    int deleteProdCateById(Long cateId);
}
